14dedf6dee5a33622f4d9a2be6d5b64627b8273c,h2o-algos/src/main/java/hex/glrm/GLRM.java,UpdateX,map,#Chunk[]#,954
Before Change
assert (_ncolA + 2*_ncolX) == cs.length;
double[] a = new double[_ncolA];
Chunk chkweight = _weightId >= 0 ? cs[_weightId]:new C0DChunk(1,cs[0]._len);
Random rand = RandomUtils.getRNG(_parms._seed + cs[0].start());
_loss = _xreg = 0;
for(int row = 0; row < cs[0]._len; row++) {
After Change
assert (_ncolA + 2*_ncolX) == cs.length;
double[] a = new double[_ncolA];
Chunk chkweight = _weightId >= 0 ? cs[_weightId]:new C0DChunk(1,cs[0]._len);
Random rand = RandomUtils.getRNG(0);
_loss = _xreg = 0;
for(int row = 0; row < cs[0]._len; row++) {
rand.setSeed(_parms._seed + cs[0].start() + row); //global row ID determines the seed
double[] grad = new double[_ncolX];
// Additional user-specified weight on loss for this row